package negocio;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

@Entity
@Table(name="LVTP_PEDIDOS_ITEMS")
public class PedidoItem
{
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column (name="ID_PEDIDO_ITEM")
	private Integer codigo;
	
	@OneToOne
	@JoinColumn(name="ID_PRODUCTO")
	private Producto producto;
	
	@Column (name="PRECIO")
	private Double precio;
	
	@Column (name="CANTIDAD")
	private Integer cantidad;

	@Column (name="DESCUENTO")
	private Float descuento;
	
	@ManyToOne
	@JoinColumn(name="ID_PROVEEDOR")
	@LazyCollection(LazyCollectionOption.FALSE)
	private Proveedor proveedor;
	
	public Integer getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	public Producto getProducto() {
		return producto;
	}

	public void setProducto(Producto producto) {
		this.producto = producto;
	}

	public Double getPrecio() {
		return precio;
	}

	public void setPrecio(Double precio) {
		this.precio = precio;
	}

	public Integer getCantidad() {
		return cantidad;
	}

	public void setCantidad(Integer cantidad) {
		this.cantidad = cantidad;
	}

	public Float getDescuento() {
		return descuento;
	}

	public void setDescuento(Float descuento) {
		this.descuento = descuento;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}	
	
	public boolean equals(Object obj)
	{
		if (obj != null && this.getClass().isInstance(obj)){
			PedidoItem tmp = (PedidoItem)obj;
			return codigo.equals(tmp.getCodigo());
		}
		return false;
	}	
}
